﻿Imports Capa_de_Acceso_a_Datos

Public Class frmConsultarCierresObraSocial
    Private iniciando As Boolean
    Private cierresObraSocial As DataTable

#Region "Inicialización y Carga"

    Private Sub frmConsultarCierresObraSocial_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        Me.Dispose()
    End Sub

    Private Sub frmConsultarCierresObraSocial_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        iniciando = True
        CargarCombos()
        cargarCierresObraSocial()
        iniciando = False
    End Sub

    Private Sub CargarCombos()
        cargarComboAno()
        cargarComboMes()
        cargarComboOSXP()
        cargarComboEstadoCierreObraSocial()
    End Sub

    Private Sub cargarComboMes()
        'Combo Mes 
        cboMes.ValueMember = "MesId"
        cboMes.DisplayMember = "Descripcion"
        cboMes.DataSource = MesDAO.comboFiltroMes
        cboMes.SelectedIndex = 0
    End Sub

    Private Sub cargarComboAno()
        'Combo Año
        cboAno.ValueMember = "AnoId"
        cboAno.DisplayMember = "Ano"
        cboAno.DataSource = Constante.obtenerAnos
        cboAno.SelectedIndex = 0
    End Sub

    Private Sub cargarComboOSXP()
        'Combo ObraSocialXPlan
        cboObraSocial.ValueMember = "ObraSocialXPlanId"
        cboObraSocial.DisplayMember = "Descripcion"
        cboObraSocial.DataSource = ObraSocialXPlanDAO.comboFiltroObraSocialXPlan
        cboObraSocial.SelectedIndex = 0
    End Sub

    Private Sub cargarComboEstadoCierreObraSocial()
        cboEstadoCierreObraSocial.ValueMember = "EstadoCierreObraSocialId"
        cboEstadoCierreObraSocial.DisplayMember = "Descripcion"
        cboEstadoCierreObraSocial.DataSource = EstadoCierreObraSocialDAO.comboFiltroEstadoCierreObraSocial()
        cboEstadoCierreObraSocial.SelectedIndex = 0
    End Sub

    Private Sub cargarCierresObraSocial()
        cierresObraSocial = CierreObraSocialDAO.obtenerXFiltroCierresObraSociales(cboAno.SelectedValue, cboMes.SelectedValue, cboObraSocial.SelectedValue, cboEstadoCierreObraSocial.SelectedValue)
        dgvCierresObraSocial.DataSource = cierresObraSocial
        darFormatoGrilla()
    End Sub

    Private Sub darFormatoGrilla()

        'dgvCierresObraSocial.Columns("MesNombre").Width = 80
        'dgvCierresObraSocial.Columns("CierreObraSocialAno").Width = 50
        'dgvCierresObraSocial.Columns("Descripcion").Width = 180
        'dgvCierresObraSocial.Columns("CierreObraSocialTotalRecetas").Width = 50
        'dgvCierresObraSocial.Columns("CierreObraSocialTotalFacturado").Width = 50
        'dgvCierresObraSocial.Columns("CierreObraSocialTotalACargo").Width = 50
        'dgvCierresObraSocial.Columns("EstadoCierreObraSocialNombre").Width = 100
        'dgvCierresObraSocial.Columns("MesNombre").HeaderText = "Mes"
        'dgvCierresObraSocial.Columns("ObraSocialXPlanId").Visible = False
        'dgvCierresObraSocial.Columns("EstadoCierreObraSocialId").Visible = False
        'dgvCierresObraSocial.Columns("MesId").Visible = False
        'dgvCierresObraSocial.Columns("CierreObraSocialId").Visible = False
        'dgvCierresObraSocial.Columns("Descripcion").HeaderText = "Obra Social / Plan / Quin."
        'dgvCierresObraSocial.Columns("CierreObraSocialTotalRecetas").HeaderText = "Recetas"
        'dgvCierresObraSocial.Columns("CierreObraSocialTotalFacturado").HeaderText = "Total Fact."
        'dgvCierresObraSocial.Columns("CierreObraSocialTotalACargo").HeaderText = "A Cargo"
        'dgvCierresObraSocial.Columns("EstadoCierreObraSocialNombre").HeaderText = "Estado"
        'dgvCierresObraSocial.Columns("CierreObraSocialAno").HeaderText = "Año"

        With dgvCierresObraSocial
            ' alternar color de filas  
            .AlternatingRowsDefaultCellStyle.BackColor = Color.FloralWhite
            .DefaultCellStyle.BackColor = Color.Beige
        End With

    End Sub

#End Region

#Region "Eventos y Actualizaciones"

    Private Sub cboAno_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboAno.SelectedIndexChanged
        If Not iniciando Then
            cargarCierresObraSocial()
        End If
    End Sub

    Private Sub cboMes_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboMes.SelectedIndexChanged
        If Not iniciando Then
            cargarCierresObraSocial()
        End If
    End Sub

    Private Sub cboEstadoCierreObraSocial_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboEstadoCierreObraSocial.SelectedIndexChanged
        If Not iniciando Then
            cargarCierresObraSocial()
        End If
    End Sub

    Private Sub cboObraSocial_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboObraSocial.SelectedIndexChanged
        If Not iniciando Then
            cargarCierresObraSocial()
        End If
    End Sub

#End Region

    Private Sub btnCobrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCobrar.Click
        Dim CierreObraSocialId As Integer
        If HayFilaSeleccionada() Then
            CierreObraSocialId = dgvCierresObraSocial.SelectedRows(0).Cells("CierreObraSocialId").Value

            If Not CierreCobrado(CierreObraSocialId) Then
                frmRegistrarCobro.CierreObraSocialId = CierreObraSocialId
                frmRegistrarCobro.Titulo = dgvCierresObraSocial.SelectedRows(0).Cells("Descripcion").Value & " - " & dgvCierresObraSocial.SelectedRows(0).Cells("MesNombre").Value & "/" & dgvCierresObraSocial.SelectedRows(0).Cells("CierreObraSocialAno").Value
                frmRegistrarCobro.ShowDialog()
                dgvCierresObraSocial.Refresh()
                cargarCierresObraSocial()
            Else
                MsgBox("El cierre seleccionado ya fue cobrado", MsgBoxStyle.Information, "Atención")
            End If
        Else
            MsgBox("Seleccione primero una fila", MsgBoxStyle.Information, "Atención")
        End If
    End Sub

    Private Function CierreCobrado(ByVal CierreObraSocialId As Integer) As Boolean
        Dim Cobrado As Boolean = False
        Dim EstadoCierre As Integer
        EstadoCierre = CierreObraSocialDAO.obtenerCierresObrasSociales(CierreObraSocialId).Rows(0)("EstadoCierreObraSocialId")

        If EstadoCierre = EstadoCierreObraSocialDAO.ESTADO_COBRADO Then
            Cobrado = True
        End If

        Return Cobrado
    End Function

    Private Function HayFilaSeleccionada() As Boolean
        Dim hay As Boolean = False

        If dgvCierresObraSocial.SelectedRows.Count > 0 Then
            hay = True
        End If

        Return hay
    End Function

    Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click
        frmCerrarObraSocial.ShowDialog()
        cargarCierresObraSocial()
    End Sub

    Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
        Me.Dispose()
    End Sub

    Private Sub Anular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Anular.Click
        'TODO Anular Cierre Obra Social
    End Sub
End Class